package com.tjvib.widget;

import android.content.Context;
import android.content.res.TypedArray;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;

import androidx.annotation.Nullable;

import com.bumptech.glide.Glide;
import com.bumptech.glide.load.resource.bitmap.CircleCrop;
import com.bumptech.glide.request.RequestOptions;
import com.tjvib.R;

public class ItemGroup extends RelativeLayout {


    private View item_group_v_high, item_group_v_low;
    private TextView item_group_tv_tit;
    private EditText item_group_et_con;
    private ImageView item_group_iv_next;

    private OnClickListener onClickListener;


    public EditText getContentEdit() {
        return item_group_et_con;
    }

    public void setClick(OnClickListener onClickListener) {
        this.onClickListener = onClickListener;
        item_group_iv_next.setClickable(true);
        item_group_iv_next.setOnClickListener(onClickListener);
    }

    public void setImg(Context context, String url) {
        Glide.with(context)
                .load(url)
                .apply(RequestOptions.bitmapTransform(new CircleCrop()))
                .into(item_group_iv_next);
    }


    public ItemGroup(Context context, @Nullable AttributeSet attrs) {
        super(context, attrs);
        initView(context);
        initAttrs(context, attrs);
    }


    private void initView(Context context) {
        LayoutInflater.from(context).inflate(R.layout.item_group, this);

        item_group_v_high = findViewById(R.id.item_group_v_high);
        item_group_tv_tit = findViewById(R.id.item_group_tv_tit);
        item_group_et_con = findViewById(R.id.item_group_et_con);
        item_group_iv_next = findViewById(R.id.item_group_iv_next);
        item_group_v_low = findViewById(R.id.item_group_v_low);

//        addView(view); //把自定义的这个组合控件的布局加入到当前FramLayout
    }


    /**
     * 初始化相关属性，引入相关属性
     *
     * @param context
     * @param attrs
     */
    private void initAttrs(Context context, AttributeSet attrs) {
        //标题的默认字体颜色
        int default_title_color = context.getResources().getColor(R.color.main_grey_0);
        //输入框的默认字体颜色
        int default_edit_color = context.getResources().getColor(R.color.main_grey_0);
        //输入框的默认的提示内容的字体颜色
        int default_hint_color = context.getResources().getColor(R.color.main_grey_0);

        TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.ItemGroup);
        String title = typedArray.getString(R.styleable.ItemGroup_title);
        float titleSize = typedArray.getDimension(R.styleable.ItemGroup_title_size, 16);
        int titleColor = typedArray.getColor(R.styleable.ItemGroup_title_color, default_title_color);
        String content = typedArray.getString(R.styleable.ItemGroup_edit_content);
        float contentSize = typedArray.getDimension(R.styleable.ItemGroup_edit_text_size, 16);
        int contentColor = typedArray.getColor(R.styleable.ItemGroup_edit_text_color, default_edit_color);
        String hintContent = typedArray.getString(R.styleable.ItemGroup_edit_hint_content);
        int hintColor = typedArray.getColor(R.styleable.ItemGroup_edit_hint_text_color, default_hint_color);
        //默认输入框不可编辑
        boolean isEditable = typedArray.getBoolean(R.styleable.ItemGroup_is_editable, false);
        //输入框是否可见，默认不可见
        boolean showEdit = typedArray.getBoolean(R.styleable.ItemGroup_edit_visible, false);
        //向右的箭头图标是否可见，默认可见
        boolean showJtIcon = typedArray.getBoolean(R.styleable.ItemGroup_jt_visible, true);
        boolean showHighLine = typedArray.getBoolean(R.styleable.ItemGroup_line_high, true);
        boolean showLowLine = typedArray.getBoolean(R.styleable.ItemGroup_line_low, true);

        typedArray.recycle();


        //设置数据
        item_group_tv_tit.setText(title);
        item_group_tv_tit.setTextSize(titleSize);
        item_group_tv_tit.setTextColor(titleColor);

        item_group_et_con.setText(content);
        item_group_et_con.setTextSize(contentSize);
        item_group_et_con.setTextColor(contentColor);
        item_group_et_con.setHint(hintContent);
        item_group_et_con.setHintTextColor(hintColor);
        item_group_et_con.setFocusable(isEditable);
        item_group_et_con.setFocusableInTouchMode(isEditable);
        item_group_et_con.setClickable(true);
        item_group_et_con.setVisibility(showEdit ? View.VISIBLE : View.GONE);

        item_group_iv_next.setVisibility(showJtIcon ? View.VISIBLE : View.GONE);

        item_group_v_high.setVisibility(showHighLine ? View.VISIBLE : View.GONE);

        item_group_v_low.setVisibility(showLowLine ? View.VISIBLE : View.GONE);
    }

    public void setItem_group_et_con(String con) {
        item_group_et_con.setText(con);
    }
}
